Implementing Shared Registers in Asynchronous Message-Passing Systems
نویسنده
چکیده
A distributed system is comprised of a collection of n processes which communicate with one another. Two means of interprocess communication have been heavily studied. Message-passing systems model computer networks where each process can send information over message channels to other processes. In shared-memory systems, processes communicate less directly by accessing information in shared data structures. Distributed algorithms are often easier to design for shared-memory systems because of their similarity to single-process system architectures. However, many real distributed systems are constructed as message-passing systems. Thus, a key problem in distributed computing is the implementation of shared memory in message-passing systems. Such implementations are also called simulations or emulations of shared memory. The most fundamental type of shared data structure to implement is a (read-write) register, which stores a value, taken from some domain D. It is initially assigned a value from D and can be accessed by two kinds of operations, read and write(v), where v ∈ D. A register may be either single-writer, meaning only one process is allowed to write it, or multi-writer, meaning any process may write to it. Similarly, it may be either single-reader or multi-reader. Attiya and Welch [4] give a survey of how to build multi-writer, multi-reader registers from single-writer, single-reader ones. If reads and writes are performed one at a time, they have the following effects: a read returns the value stored in the register to the invoking process, and a write(v) changes the value stored in the register to v and returns an acknowledgement, indicating that the operation is complete. When many processes apply operations concurrently, there are several ways to specify a register's behaviour [14]. A single-writer register is regular if each read returns either the argument of the write that completed most recently before the read began or the argument of some write operation that runs concurrently with the read. (If there is no write that completes before the read begins, the read may return either the initial value of the register or the value of a concurrent write operation.) A register is atomic (or linearizable) if each operation appears to take place instantaneously. More precisely, for any concurrent execution, there is a total order of the operations such that each read returns the value written by the last write that precedes it in the order (or the initial value of the register, if there is no such write). Moreover, …
منابع مشابه
Edsger W . Dijkstra Prize in Distributed Computing
In 1985 Fischer, Lynch, and Paterson (FLP) proved that consensus is not attainable in asynchronous message passing systems with failures. In the following years, Loui and Abu-Amara, and Herlihy proved that solving consensus in an asynchronous shared memory system is harder than implementing a read/write register. However, it was not known whether read/ write registers are implementable in async...
متن کاملA Necessary Condition for Byzantine $k$-Set Agreement
This short paper presents a necessary condition for Byzantine k-set agreement in (synchronous or asynchronous) message-passing systems and asynchronous shared memory systems where the processes communicate through atomic single-writer multi-reader registers. It gives a proof, which is particularly simple, that k-set agreement cannot be solved t-resiliently in an n-process system when n ≤ 2t + t...
متن کاملUsing Failure Detectors to Solve Consensus in Asynchronous Shared-memory Systems 1 Background and Overview of Results
Chandra and Toueg proposed a new approach to overcome the impossibility of reaching consensus in asynchronous message-passing systems subject to crash failures 6]. They augment the asynchronous message-passing system with a (possibly unreliable) failure detector. Informally , a failure detector provides some information about the processes that have crashed during an execution of the system. In...
متن کاملAn Improved Token-Based and Starvation Free Distributed Mutual Exclusion Algorithm
Distributed mutual exclusion is a fundamental problem of distributed systems that coordinates the access to critical shared resources. It concerns with how the various distributed processes access to the shared resources in a mutually exclusive manner. This paper presents fully distributed improved token based mutual exclusion algorithm for distributed system. In this algorithm, a process which...
متن کاملAsynchronous Consensus with Bounded Memory
We present here a bounded memory consensus Obstruction-Free algorithm for the asynchronous shared memory model. More precisely for a set of n processes, this algorithm uses n + 1 multi-writer multi-reader (MWMR) registers, each of these registers being of size O(log(n)) bits. Then we get a O(n log(n))-bits size complexity consensus algorithm with single-writer multi-reader (SWMR) registers and ...
متن کاملDeriving Eecient Cache Coherence Protocols through Reenement ?
We address the problem of developing eecient cache coherence protocols implementing distributed shared memory (DSM) using message passing. A serious drawback of traditional approaches to this problem is that designers are required to state the desired coherence protocol at the level of asynchronous message interactions. We propose a method in which designers express the desired protocol at a hi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008